hp 49g software development kit beta

spacer
hp logo - invent


FastCounter by bcentral

spacer
Version 1.19-6 posted October 3rd, 2001. Please note this is a zipped file and it must contain a .flash extension when unzipped. If the file does not you will need to rename it in order to correctly upload this to your calculator.

hp 49g beta rom (version 1.19-6 zip file*)

hp 49g beta rom for hp 49 emulator (version 1.19-6 zip file*)

extable library (needed to use masd)
MASD Documentation 100 Kb PDF81 Kb ZIP

If you have a problem with your HP Calculator product, please refer to the Technical Support section of the Assistance web page. If you need additional assistance, please consult our list of worldwide Support Providers to identify the telephone support team nearest you.

Important: Please read first

There have been some reports that the upgrade procedure failed. In every reported case, the procedure would have been succesful if the following had been read carefully, and the instructions followed.
In some rare cases, after an incorrect manipulation where the File System has been corrupted, it is impossible to put the HP49 in Download Mode. If such things happen please run the following program P0ERASE and follow the instruction displayed on the screen. The program is for Microsoft Windows system only.
But remember again: if you follow the instructions you won't need this tool.

How to upgrade your HP49

From ROM 1.19-5, you will need to follow a new procedure in order to upgrade the calculator.

At present the following ROM update instructions are only valid under Windows 95/98/NT/2000.

In order to update your 49G's ROM, you need the HP Graphing Calculator PC Connectivity Kit 3.0, also known as HPComm 3.0. If you don't have this, you can download it here.

If you are unsure of your ROM version, type VERSION and press [ENTER]. It will return two strings, with the first saying something like "Version HP49-C Revision 1.10". If your calculator shows anything less than the latest ROM version (1.18 is the latest official ROM and 1.19-6 is the latest beta ROM), it is time for an upgrade.

Before you start

It is important that you use fresh batteries in your calculator when you attempt a software upgrade. The upgrade process uses more power than normal operations, and the upgrade will fail if the batteries are not fresh enough. If the operating system upgrade fails, you cannot use your calculator until you upgrade the operating system.

Also, back up the 49G's user memory to the PC, as you should do before transferring any new software onto your calculator.

Updating the 49G's ROM

If you're running ROM 1.19-5 and higher, you can skip this procedure and jump to "1. On the PC:

From ROM 1.19-5, the HP49 is using an extra 64KB of Flash ROM. This 64KB used to be allocated by the user memory. Therefore, you need to save the content of this 64KB bank if you don't want to loose any files.

  1. Send the following program to extract the content of the 64KB Flash Bank. 64KB Extractor
  2. Run the program. It will put on the stack a list containing either Library or Backup Object.
  3. Save the list as-is in the HOME directory
  4. Follow the next instructions to upgrade your calculator

1. On the PC:

  1. Unzip the ROM update file to a folder on your hard drive, noting the location. Make sure it has a .flash extension; some zip decompressors do not support long file names, requiring you to rename the file.
  2. Connect the HP 49G to the PC, and start the PC Connectivity Kit.
  3. In the PC Connectivity Kit, navigate to the PC directory that holds the operating system file.
  4. Double-click the .flash operating system file to display the Download program dialog box.

2. On the 49G:

  1. Enter diagnostic mode by turning the calculator on, holding [ON], and pressing [F4].
  2. While the Tests screen is showing, use your thumb to hold down [+] and [ENTER].
  3. While holding down [+] and [ENTER], press and release [ON] to show the No System menu, and then release [+] and [ENTER].
  4. Press [4] to select terminal mode. A blank screen appears. To abort at this time, hold down [ON], press [F3], and then release both keys.

3. On the PC:

On the Flash upgrade dialog box:

  1. Use the Config Comms button to configure the PC serial port that the calculator is connected to.
  2. Click the Talk to calc button to send the download program to the HP 49G.

4. On the 49G:

The download program sent from the PC is now running.

  1. If you're running a ROM 1.19-5 or newer jump to 5
  2. Press [4] to select Erase Bank. The screen will now display "0 User Bank". If not, use the up and down arrow key until Bank 0 appear.
  3. Press [ENTER] to format the 64KB Bank.
  4. The HP49 returns to the Download menu
  5. Press [1] to select Download System. The 49G communicates with the PC Connectivity Kit and commences the upgrade.
  6. When the process finishes, the 49G will display "The system may not be installed. Please go to 'Download Pack' menu. Press any key. You now see the main Download menu.
  7. Press [2] for 'Download pack'. "System present" press Q twice to reboot. The operating system is now upgraded.
  8. If you were already running ROM 1.19-5 or newer you're done
  9. Put the list that you've extracted from the 64KB Flash Bank on the RPL stack
  10. Extract the content by running the command LIST->
  11. For each object from the list, do: 2 STO in order to re-save them in the Flash User Memory

If it fails:

If it fails, your calculator will no longer operate properly until you re-flash the ROM. To do this, perform the following steps and then go back to 3. On the PC above:

  1. Insert a paper clip into the reset hole in the back of the 49G
  2. While the screen is blank, use your thumb to hold down [+] and [ENTER].
  3. While holding down [+] and [ENTER], press and release [ON] to show the No System menu, and then release [+] and [ENTER].
  4. Press [4] to select terminal mode. A blank screen appears. To abort at this time, hold down [ON], press [F3], and then release both keys.

What's New from Release 1.19-5:

  • UserRPL: New commands:
    • STOVX: Store the given global name in the CAS variable VX
    • RCLVX: Recall the current value of the CAS variable VX
    • DISPXY: Display a text at the specified screen coordinate
      Syntax:
      3: object
      2: { #x #y }
      1: % Font_Size ( 1: small, 2: system )
  • Keyboard and Shortcuts: (& means simultaneously)
    • RS COPY: if nothing is selected will clear the Clipboard
    • RS & CHARS: HP48 Char menu
    • RS CUT: If nothing is selected will the current line and add it to the existing clipboard
    • LS & MODE: HP48 Mode menu
    • Edit Menu: Add RightShift EDIT options to edit the current selection in a new text editor.
  • Filer:
    • You can change the current working directory by pressing F1 (CHDIR) in the Tree View, or without exiting the Filer with the last menu entry (CHDIR) or using the shortcut RS + Right Arrow
    • New options available:
      • XSEND: Send the selected files with Xmodem
      • CHDIR: Change the current directory
    • Various shortcuts added. This is the current list (for the Alpha one, you must hold the alpha key):
      • Edit: Alpha [T]
      • Copy: RS [COPY]
      • Move: Alpha [M]
      • Rcl: LS [RCL]
      • Eval: RS [EVAL]
      • Tree: RS LeftArrow
      • Purge: Alpha [P]
      • Rename: Alpha [R]
      • New: Alpha [N]
      • Order: Alpha [O]
      • Send: Alpha [S]
      • Halt: Alpha [H]
      • View: Alpha [V]
      • HeaderMode: [MODE]
      • Var details On/Off: [VAR]
      • Send file with Xmodem: Alpha [X]
      • Change Working Directory: RS RightArrow
      • Sort by name: [N]
      • Inverse sort by name: LS [N]
      • Sort by size: [S]
      • Inverse sort by size: LS [S]
      • Sort by type: [T]
      • Inverse sort by type: LS [T]
  • System:
    • Reorganized the Flags list (adding all the missing one and fixed some text issues)
    • Flag toggle menus can now be accessed from ChooseBox menu. The menu item will appear in inverse video if the flag is set. A Toggle menu appeared followed by a '*' in the list
    • Cancelling the HELP in either a choose menu or in the Catalog will now go back to the original screen rather than quitting.
  • EQW: New display options:
    • Full support for pretty-print LIMIT. lim is an alias to LIMIT and will always be displayed as such.
    • EXP(X) will be displayed as e^X. This is a display only modification.
  • MASD: A lot of new things:
    • Support for the Euro character in MASD mode only
    • Support of DEFINE such as: DEFINE foo TWO GETLAM blahblah, you are not limited to only one instruction
    • Support of ROMPTR2 to call a named rompointer such as: ROMPTR2 ChooseSimple
    • For ROMPTR2 and FPTR2, the ~ or ^ is not compulsory anymore. You don't have to use them, they will be added automatically
    • Support for EXTERNAL and FEXTERNAL: if you do: EXTERNAL ChooseSimple, every reference to ChooseSimple will be then done using a ROMPTR, so there's no need to type ROMPTR2 ChooseSimple all the time:
      EXTERNAL ChooseSimple

      ::
      ChooseSimple
      ;

      will be equivalent to :
      ::
      ROMPTR2 ChooseSimple
      ;
    • Support for all kind of arrays: array of strings, reals, complex numbers etc... So: ARRY [ "Hello" "World" ] is now valid
    • Support for either JAZZ or MASD order when creating local variables with {{ var .. }} (use the !JAZZ)
    • Support for debugging information. MASD will then generates two objects, one containing all the debugging information (line numbers, instructions etc...), the other one being the usual objects.
    • Bugs Fixed (The following bugs have been fixed):
      • Check http://bugs.hpcalc.org for more details.
      • System:Fix several bugs in very low memory condition. Thank you Werner for your help on this issue.
      • System:Correct support of \00 to generate the null character
      • Graphic Toolbox:Finally fixed all the known bugs
      • Filer: bug in Filer when copying over an existing file and aborting. Thanks Steen for this bug report
      • Filer:Fix a bug in Filer when moving around, if a sort option was activated, the cursor was not correctly located (cursor was located on the non-sorted list)
      • Menus:Made sure that in all the menu the order of SOLVEVX and SOLVE is consistent (SOLVEVX before SOLVE)
      • Menus:Fixed many inconsistencies where menus didn't have a title
      • [3]CASDIR object type not checked
      • [4]Duplicate library in different ports
      • [5]RENAME command has no safety checks
      • [6]MES bugs
      • [7]Z=, Z<> failing with two zeroes
      • [9]Scatter Plot Setup minor problem
      • [22]I/O functions / Transfer form always reports Xlat:Newl
      • [23]EVAL involving CONST clears the stack
      • [30]Summation involving COMB()
      • [32]Getting @ in ALG/PRG mode inside INFORM
      • [37]INVMOD
      • [38]couter size of selected object bug over 512ko
      • System: Fixed PROMPTSTO to use Sto_Here: instead of STO , so CASDIR can't be deleted if it exists (as it may crash the calculator)
      • System:Changed the MODES inputform screen to be updated after calling FLAGS
      • CAS: bug in FACTOR when used on bi-squarred equations
      • System: Fix DTAG returning an Invalid Error
      • CAS:All known bugs

      What's New from Release 1.19-4:

      • Algebraic Mode: Added autoquote process on some functions. For a complete list look here. Warning, arguments within lists will not be quoted.
      • RPL/Algebraic Compiler. New keyword to create greyscale graphic object. Syntax: GREY xx yy data. At this stage, greyscale objects are not yet supported by the graphical commands.
      • InputForm engine: In algebraic mode, algebraic expression field will automatically be quoted.
      • Filer: SORT option. Sort the file list by name, type or size
      • Filer: PageUp/PageDown are now working
      • MASD: Display statistics while compiling
      • System: New CALC menu organisation (direct access to DERVX and INTVX)
      • System: Various speed improvements
      • Bugs fixed (the following bugs have been fixed):
        • System: Filling a user bank in port 2 could disable the Flash access
        • System: Recalling a non-existent object in port 2 using a path could reset the calculator
        • Algebraic Compiler: incorrect compilation of | (where) when using expression
        • Table View: Some twisted Parametric equations could reboot the calculator
        • CAS: all known problems
        • MASD: Problem when using name longer than 8 characters

      What's New from Release 1.19-3:

      • CAS: New EXP2HYP command (see online help for more information)
      • CAS: New LOCAL command. Create (and initialize) local variables from a list. To be used to avoid the need of nested -> << >> in algebraic mode
      • CAS: New UNBIND command. Delete local variables
      • System: New clock display manager. Will not create temporary objects anymore (reducing the frequency of Garbage Collector)
      • System: New expression optimizer. It is now possible to plot or solve functions that include non-algebraic expressions (as the HP48)
      • MASD: Added LIBDAT support, $ "" support, GOSBVL/GOVLNG =label support, Fixed a problem that could prevent the HP49 to start after a very low memory condition (exists in all previous HP calculator)
      • Bugs fixed (the following bugs have been fixed):
        • System: Storing 128KB+1 bytes could corrupt the Flash structure
        • System: Fixed a clock problem that could prevent the HP49 to start after a very low memory condition (exists in all previous HP calculator)
        • CAS: various bugs fixed
        • MASD: Incorrect error messages when a SKIP structure was not correctly closed

      What's New from Release 1.19-1:

      • Real numbers in unit objects are displayed without the . (dot) if the value is below 1000. Example: 2_m^2 is not displayed as 2._m^2. anymore, and do not follow display format (FIX, SCI etc.)
      • New commands GBASIS and GREDUCE (see inline-help for more details)
      • Bugs fixed (the following bugs have been fixed):
        • System: Crash when pressing Shift F6 from plotter
        • System: DOLIST can hang the calculator when passing bad argument types
        • System: New 1.19 Menu are not accessible using the MENU and TMENU commands
        • CAS: CAS menu REWRITE is not linked to the MAIN menu
        • CAS: Mistakes in inline help
        • CAS: Inline help added for commands GBASIS, GREDUCE, POTENTIAL and VPOTENTIAL
        • CAS: When called from an empty stack CASCMD doesn't return a result
        • 48GX Finance Solver: Pressing F6 on some fields could corrupt the stack

      What's New from Release 1.19-1:

      • Real numbers in unit objects are displayed without the . (dot) if the value is below 1000. Example: 2_m^2 is not displayed as 2._m^2. anymore, and do not follow display format (FIX, SCI etc.)
      • New commands GBASIS and GREDUCE (see inline-help for more details)
      • Bugs fixed (the following bugs have been fixed):
        • System: Crash when pressing Shift F6 from plotter
        • System: DOLIST can hang the calculator when passing bad argument types
        • System: New 1.19 Menu are not accessible using the MENU and TMENU commands
        • CAS: CAS menu REWRITE is not linked to the MAIN menu
        • CAS: Mistakes in inline help
        • CAS: Inline help added for commands GBASIS, GREDUCE, POTENTIAL and VPOTENTIAL
        • CAS: When called from an empty stack CASCMD doesn't return a result
        • 48GX Finance Solver: Pressing F6 on some fields could corrupt the stack

      What's New from Release 1.18:

      • New CAS (Computer Algebra System) including:
        • on-line help. Inside the EQW, press [HELP]. If you have a symbolic highlighted (e.g. COLLECT(X+1)) you will get directly help on COLLECT, otherwise or if the top operator is not a CAS command you will have a choosebox with all the CAS commands. Also the Catalog and each menu give access to the CAS help if available.
        • New arithmetic functions like cyclotomic polynomials and Sturm sequences (e.g. STURMAB will return the number of real zeros in an interval)
        • Assumption on variables like ASSUME(X>1), this properties will be used to simplify ABS value or to find some limits
        • SIMPLIFY command which is essentially TEXPAND followed by EXPAND
        • New linear algebra commands: KER, IMAGE of a linear application, BASIS of a vector space, IBASIS intersection basis of two vector spaces, ISOM to find the elements of a 2-d or 3-d linear isometry.
        • Main changes in existing functions:
          • Step by step implemented for: integration, GCD and IEGCD for integers, PARTFRAC
          • EXPAND does now EXP2POW (convert EXP[c*LN] to power)
          • TAN2SC2 does no more take care of prefer sin/cos flag, use the new command TAN2CS2
          • SOLVE / SOLVEVX can solve 1 rational inequality in 1 var
          • SOLVE / LINSOLVE accept systems written as a symbolic: use AND between equations
          • TABVAR accepts now some non rational functions: e.g. EXP(X)-X
          • Improvements or optimizations in SOLVE, integration, LAP/ILAP, SERIES
      • Zoom capabilities in 3D Plotter using the [+] and [-] keys
      • New UserKeys assignements for simultaneous shifted key press. Example, doing << "Hello World" 1 DISP >> 82.21 ASN will assign this program to [Shift] and simultaneously [4]

      What's New from Release 1.16:

      • Holding BackSpace during Boot Sequence will put the calculator in safe mode. User library will be completely ignored unlike previous version. STARTUP will also be ignored if BackSpace is hold after the MetaKernel logo appearance.
      • Switch between complex to real mode from the keyboard (press and hold down LeftShift and then [TOOL]).
      • Decompiler now fully compatible with HP48 (DECOMP$).
      • HP48 Input Forms: Global names are not evaluated anymore.

      What's New from Release 1.10:

      • SIZE returns the number of digits for an integer instead of 1.
      • Symbolic series: SUM(I=1,N,I) will return (N^2+N)/2. Implementation of gamma, digammas etc.. functions
      • New Y= window: You can now create your own user functions and combine functions together like:
        Y2(X)=Y1(SIN(X)).
      • Switch between approx to exact mode from the keyboard (press and hold down RightShift and then ENTER)
      • New power algorithm: 3^1000 takes less than 2s now.
      • UserRPL optimization: 1 1000 FOR I NEXT is now much faster Binary functions related to integers are now faster (+,-,*,/,^,NEG, INV, SQ)
      • STARTED and EXITED can customize the command line editor
      • Multiple Equation Solver now contained in ROM.
      • sysRPL stack is now implemented: set the flag -85 to use it.
      • Complex Matrices are now displayed in textbook mode.
      • New XModem Server. It's now possible to transfer the ROM of an HP49G to another one using the ROMUPLOAD command. You can also control another HP49G using the xmodem protocol :
        • XSERV: Put the calculator in XModem server mode No Inputs/outputs The Xmodem server recognize the following commands:
        • P: Put a file in the calculator
        • G: Get a file from the calculator
        • E: Execute the command line
        • M: Get the calculator memory
        • L: List the files in the current directory
        • XGET: Get a file from a XModem server
          Input: the name of the file to get (a global or local name)
        • XPUT: Put a file in a XModem server
          Input: The name of the file to send (a global or local name)
      • ROMUPLOAD: Put the calculator in ROM upload mode.
        When in ROMUPLOAD mode, the calculator act like the FDP program, allowing another calculator to upgrade its ROM.
        (The baudrate must be 9600bps for a ROM upgrade)
      • MASD is in the ROM. Attach the library 256 to use it. You will also need the extable library in order to use the mnemonic tables.

      *When unzipping make sure the ROM file has a .flash extension. Depending on file associations this may be truncated causing it to no longer work with the flash download program (FDP).